package com.cyj.dream.core.constant;

/**
 * @Description: 全局常量
 * @BelongsProject: DreamChardonnay
 * @BelongsPackage: com.cyj.dream.core.constant
 * @Author: ChenYongJia
 * @CreateTime: 2021-09-26 13:27
 * @Email: chen87647213@163.com
 * @Version: 1.0
 */
public class Constant {


    /**
     * 数据源名称
     */
    public static final String SCAN_BASE_PACKAGES_URL = "com.cyj.dream";

    // ------------------------------- 数据库驱动 -------------------------------

    /**
     * 数据源名称
     */
    public static final String DS_NAME = "name";

    /**
     * 默认驱动--mysql8 加 cj
     */
    public static final String DS_DRIVER = "com.mysql.cj.jdbc.Driver";

    /**
     * mysql5驱动
     */
    public static final String DS5_DRIVER = "com.mysql.jdbc.Driver";

    /**
     * 默认数据源（master）
     */
    public static final String DS_MASTER = "master";

    /**
     * jdbcurl
     */
    public static final String DS_JDBC_URL = "url";

    /**
     * 用户名
     */
    public static final String DS_USER_NAME = "username";

    /**
     * 密码
     */
    public static final String DS_USER_PWD = "password";

    // ------------------------------- mybatis-plus字段设置默认值 -------------------------------

    /**
     * 未删除
     */
    public static final String DELETE_STATUS_UNDELETED = "0";

    /**
     * 已删除
     */
    public static final String DELETE_STATUS_DELETED = "1";




    // ------------------------------- 邮件配置 -------------------------------

    /**
     * 以下是 163 邮件配置--基于 hutool--邮件服务器的SMTP地址，可选，默认为smtp.<发件人邮箱后缀>
     */
    public static final String EMIL_HOST = "smtp.163.com";

    /**
     * 邮件服务器的SMTP端口，可选，默认25
     */
    public static final Integer EMIL_PORT = 25;

    /**
     * 设置是否需要用户名密码验证
     */
    public static final boolean EMIL_AUTH = true;

    /**
     * 发件人邮箱;
     *
     * 发件人（必须正确，否则发送失败）
     */
    public static final String EMIL_FROM = "SunnyChen<chen867647213@163.com>";

    /**
     * 用户名，默认为发件人邮箱前缀
     */
    public static final String EMIL_USER = "chen867647213";

    /**
     * 密码（注意，某些邮箱需要为SMTP服务单独设置授权码，详情查看相关帮助）
     */
    public static final String EMIL_PASS = "FILJRWQKDSYFMQCG";

    // ------------------------------- 一些变量指定 -------------------------------

    /**
     * hashMap在无法确定初始化大小时设置默认值16 INITIAL_CAPACITY——(元素个数/0.75 + 1)
     */
    public static Integer INITIAL_CAPACITY = 16;

    // ------------------------------- RSA 加解密 -------------------------------

    /**
     * RSA最大加密明文大小
     */
    public static final int MAX_ENCRYPT_BLOCK = 117;

    /**
     * RSA最大解密密文大小
     */
    public static final int MAX_DECRYPT_BLOCK = 128;

    /**
     * 算法名称
     */
    public static final String ALGORITHM_NAME = "RSA";

    /**
     * MD5 RSA加密方式
     */
    public static final String MD5_RSA = "MD5withRSA";

    /**
     * RSA 私钥
     */
    public static final String RSA_PRIVATE_KEY = "RSAPrivateKey";

    /**
     * RSA 公钥
     */
    public static final String RSA_PUBLIC_KEY = "RSAPublicKey";

    // ------------------------------- JWT 配置信息 -------------------------------

    /**
     * 密钥KEY
     */
    public static String secret = "dreamSecret";

    /**
     * TokenKey
     */
    public static String tokenHeader = "Authorization";

    /**
     * Token前缀字符
     */
    public static String tokenPrefix = "DreamCloud-";

    /**
     * token 过期时间为七天 * 24 * 7;
     *
     * 测试两小时
     *
     */
    public static Integer expiration = 1000 * 60 * 60 * 2;

    /**
     * 刷新token：refToken 过期时间为七天 * 24 * 7;
     * 测试两小时
     *
     */
    public static Integer refExpiration = 1000 * 60 * 60 * 2;

    // ------------------------------- ENV 环境切换标识 -------------------------------

    /**
     * 环境切换标识：uat/test == false;pro == true
     */
    public static final boolean ENV_FLAG = false;

    public static final String ENV_DEV = "dev";

    public static final String ENV_UAT = "uat";

    public static final String ENV_PRD = "prd";

    // ------------------------------- UPLOAD PIC 上传图片 -------------------------------

    /**
     * 文件上传大小限制 20MB--这个大小限制可以放在Nacos上
     */
    public static final Integer UPLOAD_SIZE_LIMIT= 1024 * 1024 * 20;


}
